﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SPDevLab.WebParts.JsAppWebPart.Apps;
using Microsoft.SharePoint;

namespace SPDevLab.WebParts.JsAppWebPart.Services.Base
{
    public abstract class JsAppServiceBase
    {
        #region methods

        public abstract void EnsureJsAppSiteInsfastructure(SPSite site);

        public abstract string CreateAppHtmlContent(string appHtmlContent, IEnumerable<JsAppToken> tokens);
        public abstract IEnumerable<AppPackage> LoadApps(SPSite site, string siteRelatedAppFolderUrl);

        public abstract IEnumerable<JsAppToken> GetLinkedJsAppTokens(object obj);

        public abstract T DeserializeFromJson<T>(string value);
        public abstract string SerializeToJson(object value);

        #endregion
    }
}
